package event


// PrivateSender .
type PrivateSender struct{
	UserID int64 `json:"user_id"`
	Nickname string `json:"nickname"`
	Sex string `json:"sex"`
	Age int32 `json:"age"`
}


// PrivateMessage .
type PrivateMessage struct{
	PostType string `json:"post_type"`
	MessageType string `json:"message_type"`
	SubType string `json:"sub_type"`
	MessageID int32 `json:"message_id"`
	UserID int64 `json:"user_id"`
	Message string  `json:"message"`
	RawMessage string `json:"raw_message"`
	Font int32 `json:"font"`
	PrivateSender `json:"sender"`
}


// Anonymous .
type Anonymous struct{
	ID int64 `json:"id"`
	Name string `json:"name"`
	Flag string `json:"flag"`
}


// GroupSender .
type GroupSender struct{
	UserID int64 `json:"user_id"`
	Nickname string `json:"nickname"`
	Card string `json:"card"`
	Sex string `json:"sex"`
	Age int32  `json:"age"`
	Area string `json:"area"`
	Level string `json:"level"`
	Role string `json:"role"`
	Title string `json:"title"`
}


// GroupMessage .
type GroupMessage struct{
	PostType string `json:"post_type"`
	MessageType string `json:"message_type"`
	SubType string `json:"sub_type"`
	MessageID int32 `json:"message_id"`
	GroupID int64 `json:"group_id"`
	UserID int64 `json:"user_id"`
	Anonymous `json:"anonymous"`
	Message string `json:"message"`
	RawMessage string `json:"raw_message"`
	Font int32 `json:"font"`
	GroupSender `json:"sender"`
}


// DiscussSender .
type DiscussSender struct{
	UserID int64 `json:"user_id"`
	Nickname string `json:"nickname"`
	Sex string `json:"sex"`
	Age int32 `json:"age"`
}


// DiscussMessage .
type DiscussMessage struct{
	PostType string `json:"post_type"`
	MessageType string `json:"message_type"`
	MessageID int32 `json:"message_id"`
	DiscussID int64 `json:"discuss_id"`
	UserID int64 `json:"user_id"`
	Message string `json:"message"`
	RawMessage string `json:"raw_message"`
	Font int32 `json:"font"`
	DiscussSender `json:"sender"`
}


// GroupDecrease .
type GroupDecrease struct{
	PostType string `json:"post_type"`
	NoticeType string `json:"notice_type"`
	SubType string `json:"sub_type"`
	GroupID int64 `json:"group_id"`
	OperatorID int64 `json:"operator_id"`
	UserID int64 `json:"user_id"`
}


// GroupIncrease .
type GroupIncrease struct{
	PostType string `json:"post_type"`
	NoticeType string `json:"notice_type"`
	SubType string `json:"sub_type"`
	GroupID int64 `json:"group_id"`
	OperatorID int64 `json:"operator_id"`
	UserID int64 `json:"user_id"`
}



// GroupBan .
type GroupBan struct{
	PostType string `json:"post_type"`
	NoticeType string `json:"notice_type"`
	SubType  string `json:"sub_type"`
	GroupID int64 `json:"group_id"`
	OperatorID int64 `json:"operator_id"`
	UserID int64 `json:"user_id"`
	Duration int64 `json:"duration"`
}


// FriendRequest .
type FriendRequest struct{
	PostType string `json:"post_type"`
	RequestType string `json:"request_type"`
	UserID int64 `json:"user_id"`
	Comment string `json:"comment"`
	Flag string `json:"flag"`
}


// GroupRequest .
type GroupRequest struct{
	PostType string `json:"post_type"`
	RequestType string `json:"request_type"`
	SubType string `json:"sub_type"`
	GroupID int64 `json:"group_id"`
	UserID int64 `json:"user_id"`
	Comment string `json:"comment"`
	Flag string `json:"flag"`
}
